// miniprogram/pages/articleDetails/articleDetails.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    article : null,
    createdTime : null
  },

  /*
    Retrieve the article details by click from index page.
  */ 
  retrieveTargetArticle() {
    const eventChannel = this.getOpenerEventChannel();
    eventChannel.on('receiveArticleID', (data) => {
      let articleID = data.articleID;
      if(!articleID) {
        return null;
      }
      
      let createdTime = data.createdTime;

      let queryRequest = {
          originCollection : "Article",
          fromCollectionsLookUpParmas : [
                                    {
                                      name : "User",
                                      let : {
                                        userID : '$userID'
                                      },
                                      pipeline : [
                                        {
                                          operator : 'eq',
                                          fieldName : '$userID',
                                          definedName : '$$userID'
                                        },                                 
                                      ],
                                      project : {
                                        _id: 0,
                                        userID: 1,
                                        nickName: 1,
                                        avatar: 1               
                                      },
                                      as : 'Article2User',
                                    },

                                    {
                                      name : "ArticleTags",
                                      let : {
                                        tags : '$tags'
                                      },
                                      pipeline : [
                                        {
                                          operator : 'in',
                                          fieldName : '$tagID',
                                          definedName : '$$tags'
                                        },                                 
                                      ],
                                      project : {
                                        _id: 0,
                                        tagID: 1,
                                        name: 1,
                                        desc: 1                        
                                      },
                                      as : 'Article2ArticleTags',
                                    }
                                  ],
          matchCondition : {
            matchFieldName : 'articleID',
            operator : 'eq',
            value : articleID
          }
      }

      wx.cloud.callFunction({
        name : "AggregatedLookUpQuery",
        data : {
          queryRequest
        }
      })
      .then(res => {
        let article = res.result[0];
        console.log(`Retrieve the target article ========== 返回结果原始数据：${article.articleID}, ${article.title}`);

        this.setData({
          article,
          createdTime
        });
      });

    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //Retrieve the target Article depends on the delivered Article ID
    this.retrieveTargetArticle();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})